import axios from "axios";
import router from "@/router";
import Element from 'element-ui'

axios.defaults.baseURL="http://localhost:8081"

/**
 * 创建一个axios 以后我们直接引入这个axios
 */
const request = axios.create({
    /**
     * 设置超时时间和headers
     */
    timeout:5000,
    headers:{
        'Content-Type':"application/json; chaeset=utf-8"
    }
})
/**
 * 请求头携带token
 */
request.interceptors.request.use(config=>{
    config.headers['Authorization'] = localStorage.getItem('token')
    return config
})

request.interceptors.response.use(response=>{
    let res = response.data;

    /**
     * 根据状态码判断请求是否成功
     * 请求成功则直接返回response
     * 请求失败则不在继续执行
     */
    if(res.code===200){
        return response
    }else if(res.code){
        Element.Message.error(res.msg?res.msg:"系统错误!")
        return Promise.reject(res.msg)
    }
},error => {
        console.log(error)

        if(error.response.data){
            error.massage = error.response.data.msg
        }

        if(error.response.status===401){
            router.push('/login')
        }

        Element.Message.error(error.massage,{duration:3000})
        return Promise.reject(error)
    }
)

export default request
